life & scope
[life]
區域變數只會存活在宣告該變數的method中,會活到method執行完畢為止,只要她還活著,他的狀態就會被保存
[scope]
區域變數其範圍只限於宣告他的method內,當他的method呼叫別的method時,此區域變數雖然還活著(life),但是並不在目前的範圍內(scope),要等到當其他method都執行完畢return回來此method時,scope才會跟著回來
[參考變數影響object's life]
如果沒有任何對某object的參考變數了,則此object再也不會被用到,換句話說,此object便沒有存在的意義了,只會浪費掉記憶體空間
所以當某object的參考死亡,object就會被heap利用garbage collection在記憶體不構的時候部分或全部回收掉
[解散object的參考]
1.參考變數0離開scope,也就是當參考便樹存在的method結束時,ex.
void eat(){
Human a = new Human(); //會在method結束時死亡
}
2.參考指向別的object時,ex.
Human a = new Human();
a = new Human();
3.參考直接被設為null,ex.
Human a = new Human();
a = null;